import XBCIM from 'xbcim'

/**
 * appkey和appSecret用你自己创建的应用，这里给出的是公共体验账号，每天会定时清理聊天数据
 * 生产环境请使用自己创建的，以免信息泄露
 */
const appKey = 'd71b071c175a78d5'
const appSecret = '40dee31311e05a9ecd5c1952eb54c7a1'

const IM = {
	// 初始化
	init(){
		return new Promise((resolve, reject)=>{
			const userId = uni.getStorageSync('userId')
			if(!userId) return
			
			uni.request({
				url: 'https://chat.xiangbaicheng.com/im/auth/token',
				method: 'POST',
				data: {
					userId,
					appKey,
					appSecret
				},
				success: (res)=> {
					if(res.statusCode !== 200 || (res.statusCode === 200 && res.data.code)){
						console.log('IM初始化失败')
						return reject(res.data)
					}
					
					// 初始化
					XBCIM.init({ appKey })
					
					// 登录
					XBCIM.login({
						userId,
						code: res.data.data
					}).then((res)=>{
						return resolve(res)
					}).catch(err=>{
						return reject(err)
					})
				},
				fail(err) {
					console.log('IM初始化失败')
					return reject(err)
				}
			})
		})
	},
	// 注册用户到IM
	register(userInfo){
		return new Promise((resolve, reject)=>{
			XBCIM.register({
				appKey,
				...userInfo
			}).then((res)=>{
				return resolve(res)
			}).catch(err=>{
				return reject(err)
			})
		})
	},
	// 翻译消息
	translateMessage(message){
		return new Promise((resolve, reject)=>{
			const { conversationType, id } = message
			XBCIM.translateMessage({
				conversationType,
				messageId: id
			}).then(res=>{
				return resolve(res)
			}).catch(err=>{
				uni.showToast({
					icon: 'none',
					title: err.msg
				})
				return reject(err)
			})
		})
	}
}

export default IM